package com.yfp.operation.domain.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yfp.common.core.annotation.Excel;
import com.yfp.common.core.text.BigDecimalSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 券包销售数据查询结果
 */
@Data
public class UserLayerVO {

    /**
     * 点位Id
     */
    @Schema(description = "点位Id")
    private String positionId;

    /**
     * 点位名称
     */
    @Excel(name = "点位名称")
    @Schema(description = "点位名称")
    private String positionName;

    /**
     * 设备数量
     */
    @Excel(name = "设备数量")
    @Schema(description = "设备数量")
    private Integer machineNum;

    /**
     * 累计用户数
     */
    @Excel(name = "累计用户数")
    @Schema(description = "累计用户数")
    private Integer totalUser;

    /**
     * 下单用户数
     */
    @Excel(name = "下单用户数")
    @Schema(description = "下单用户数")
    private Integer orderUser;

    /**
     * 新用户数
     */
    @Excel(name = "新用户数")
    @Schema(description = "新用户数")
    private Integer newUser;

    /**
     * 新用户环比
     */
    @Excel(name = "新用户环比", scale = 2, suffix = "%")
    @JsonSerialize(using = BigDecimalSerializer.class)
    @Schema(description = "新用户环比")
    private BigDecimal newUserSequentialGrowth;

    /**
     * 新用户占比
     */
    @Excel(name = "新用户占比", scale = 2, suffix = "%")
    @JsonSerialize(using = BigDecimalSerializer.class)
    @Schema(description = "新用户占比")
    private BigDecimal newUserRatio;

    /**
     * 复购率
     */
    @Excel(name = "复购率", scale = 2, suffix = "%")
    @JsonSerialize(using = BigDecimalSerializer.class)
    @Schema(description = "复购率")
    private BigDecimal repurchaseRate;
}
